package factory;

import java.util.Date;

/**
 * AB耦合的三种关系
 * 1. A is a kind of B  //子类关系
 * 2. A has B as a part //组合关系
 * 3. A use B //方法调用的时候使用B或者方法参数中使用了B
 */

public class NewDemo1 {


    public static void main(String[] args)  {
Object a=new A();//直接创建对象方式
//        Object a= Factory.create("Apple");//通过工厂来生产对象
//        Object b= Factory.create("Banana");
//        Object c= Factory.create("Kiwi");
        //不通过new也能产生对象 反射
        Object today=null;
        try {
            today=Class.forName("java.util.Date").newInstance();// 等效与today=new java.util.Date();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        System.out.println(today);


    }
}
